$(function(){
	var validateFlag = {
		'domain' : 0,
		'schoolName' : 0,
		'mobile' : 0
	};

    // 用于css3特性检测
	var supports = (function() {
		var div = document.createElement('div'),
			vendors = 'Khtml O Moz Webkit'.split(' '),
		 	len = vendors.length;
		return function(prop) {
		 	if ( prop in div.style ) return true;
		 	if ('-ms-' + prop in div.style) return true;
		  	prop = prop.replace(/^[a-z]/, function(val) {
		 		return val.toUpperCase();
			});
			while(len--) {
			 	if ( vendors[len] + prop in div.style ) {
			 		return true;
			 	}
			}
			return false;
		};
	})();

	var supportTransition = supports('transition');

	// 每次单独显示一个提示
	var showTip = function($tips,className){
		$tips.find('p').hide()
		.end().find(className).show();

		if(supportTransition){
			$tips.addClass('active');
		}else{
			$tips.animate({'maxHeight' : '100px','opacity' : '1'},250);
		}
	};

	var hideTip = function($tips){
		if(supportTransition){
			$tips.removeClass('active');
		}else{
			$tips.animate({'maxHeight' : '0px','opacity' : '1'},250);
		}
	};

	var patterns = {
		domain : function(text){
			return /^[a-zA-Z0-9]{6,24}$/.test(text);
		},
		schoolName : function(text){
			text = $.trim(text).replace(/[\u4e00-\u9fa5]/g,'11');
			return text.length <= 24 && text.length > 0;
		},
		mobile : function(text){
			return /^1[3-9]\d{9}$/.test(text);
		}
	}

	// 异步检测输入是否重复
	var checkRepeat = function(val,type,$section){
		var $tip = $section.find('.tips');

		if(type === 'domain'){
			var checkUrl = $('#checkRepeatUrl').val() + '?domain=' + val;
			$.get(checkUrl,function(data){
				if(data.returnCode === 'exist'){
					showTip($tip,'.repeat_tip');
					validateFlag[type] = 0;
					$('[name="personalityDomain"]').addClass('error');
				}else{
					hideTip($tip);
					validateFlag[type] = 1;
				}
			},'json');
		}else{
			hideTip($tip);
			validateFlag[type] = 1;
		}
	};	

	var defaultValueShow = function($input){
		$input
			.addClass('default_display')
			.val($input[0].defaultValue);
	}

	var defaultValueHide = function($input){
		$input
			.removeClass('default_display')
			.val('');
	}

	// 输入框聚焦时显示提示，失去焦点时进行验证
	$('.input_text input').on({
		focus : function(){
			var $input_text = $(this).parents('.input_text'),
				$section = $(this).parents('.section');

			$(this)
				.addClass('selected')
				.removeClass('error');
			if($(this).val() === $(this)[0].defaultValue){
				defaultValueHide($(this));
			}
			showTip($section.find('.tips'),'.default_tip');
		},
		blur : function(){
			var $input_text = $(this).parents('.input_text'),
				$section = $(this).parents('.section'),
				inputValue = $(this).val(),
				inputType = $(this).attr('validateType');

			$(this).removeClass('selected');

			if (inputValue === '') {
				defaultValueShow($(this));
				hideTip($section.find('.tips'));
				
				validateFlag[inputType] = 0;
			}else{
				if (!patterns[inputType](inputValue)){
					showTip($section.find('.tips'),'.error_tip');
					$(this).addClass('error');
					validateFlag[inputType] = 0;
				}else{
					checkRepeat(inputValue,inputType,$section);
				}
			}
		}
	});

	 // 提交前检测
	$('.active_btn').click(function(){

		$('.input_text input').each(function(){
			if( $(this).val() === $(this)[0].defaultValue){
				$(this).addClass('error');
				showTip($(this).parents('.section').find('.tips'),'.null_tip');
				return false;
			}
		});
		if (!validateFlag.domain || !validateFlag.schoolName || !validateFlag.mobile) {
			return false;
		}
	}); 
});